import { defineConfig } from "vite";
import { resolve } from "path";
import vue from "@vitejs/plugin-vue";
// import cesium from 'vite-plugin-cesium';

import AutoImport from "unplugin-auto-import/vite";
import vitePluginRpx from "./vite-plugins/vite-plugin-rpx";

function pathResolve(dir) {
  return resolve(__dirname, ".", dir);
}

// https://vitejs.dev/config/
export default defineConfig({
  base: "./",
  // base: "/enforcement/", //等同于  assetsPublicPath :'./'
  // plugins: [vue(),cesium()],
  plugins: [
    vue(),
    vitePluginRpx(),
    AutoImport({
      imports: [
        "vue", // 自动导入 vue 函数
        "vue-router", // 自动导入 vue-router 函数
        // {
        //   from: 'element-plus',
        //   imports: ['ElMessage', 'ElMessageBox']
        // } // 从 element-plus 组件库中自动导入的函数
      ],
      dirs: [], // 自动导入的全局文件
      eslintrc: {
        enabled: false, // 启用自动生成的 ESLint 配置
        // filepath: '.eslintrc-auto-import.json', // 自动生成的 ESLint 配置文件路径，可以手动设置存储位置，默认根目录下面。
        globalsPropValue: true, // 将自动导入的变量注册为全局
      }, // 保证自动导入的函数既不触发 ESLint 的 no-undef 报错，也拥有完善的类型提示。默认不配置的话不会生成类型声明文件。
    }),
  ],
  esbuild: {
    drop: ["console"], // 删除 console 和 debugger
  },
  resolve: {
    alias: {
      "@": pathResolve("src"),
    },
  },
  pluginOptions: {
    "style-resources-loader": {
      preProcessor: "sass",
      patterns: [],
    },
  },
  // 强制预构建插件包
  optimizeDeps: {
    include: ["axios"],
  },
  // 打包配置
  build: {
    target: "modules",
    outDir: "dist", //指定输出路径
    assetsDir: "static", // 指定生成静态资源的存放路径
  },
  // 本地运行配置，及反向代理配置
  server: {
    ip: "0.0.0.0",
    port: 8080, // 端口号
    cors: true, // 默认启用并允许任何源
    open: true, // 在服务器启动时自动在浏览器中打开应用程序
    //反向代理配置，注意rewrite写法，开始没看文档在这里踩了坑
    proxy: {
      "/integrated-workbench/v1/": {
        target: "https://np.bcdtech.cn:81", //新港
        // target: "https://vp.bcdtech.cn:8181", //大沽
        // target: "https://vp.bcdtech.cn:8383", //新北
        changeOrigin: true,
      },
    },
  },
});
